User blog:And2806/Proposed calculation of level difficulty - an algorithm
Hi all! I searched for a long time a method in order to calculate the difficulty of a level in Piano Tiles 2. Personal evaluations are too subjective, depending on personal skills and impressions. So, an objective and mathematical method should be used instead. I spent many time to find an optimal algorithm, and each algorithm I found had some pros and some cons. At the end, I believe that the following one would be a good one, and the best one among the ones selected by me, reflecting my personal impressions on the level difficulties, even if some doubts on some levels remain. Any further suggestion will be accepted. Let me explain my algorithm (I prepared an Excel sheet with VB code in order to calculate the difficulty of each level, otherwise doing it personally would be very time consuming). 1. Value of each tile Each tile has the following value: Single tile: 1, except when placed after a double tile when its value is the value of the previous tile + 0.2 Long tile: 1/(value of the tile - 1)^2, for example the "+3" tile has a value of 1/2^2 = 1/4 = 0.25, the "+7" tile has a value of 1/6^2 = 1/36 = 0.02778. If placed after a double tile its value is multiplied by 3 The value of both single and long tiles, if immediately after a sliding tile, is multiplied by 2. For example, if a "+3" tile comes after a sliding tile, its value is 2*(1/2^2) = 0.5 The first double tile of a row: 4, except when placed after a single tile whose value is greater than 4. In this case its value is the value of the previous tile + 0.2 Subsequent double tiles (i.e. double tiles coming immediately after another double tile): value of the previous tile + 0.2 The last rapid tile of a sequence (last tap of a multiple tap): 4 Precedent rapid tiles (previous taps): 0.5 each Note: rapid tiles are the ones in which you have to tap the big tile many times. For example, if you have a "16" rapid tile, its value is 15*0.5 + 4 = 11.5 The first tile of a sliding tile: 2.5 Subsequent tiles of the same sliding tile: 0 each A pause covering a single tile: 0.5 A pause covering two tiles: 1/8 = 0.125 each tile A pause covering three tiles: 1/18 = 0.055555 each tile A pause covering four or more tiles: 1/32 = 0.03125 each tile The value of a tile cannot be greater than 8, i.e. if the value of a tile is greater than 8, its value is limited to 8. 2. Value of sequences For each tile, we can associate a sequence calculated as the sum of the current tile and the 9 subsequent tiles. If a tile is one of the last tiles of a section, we use the first tiles of the next section, if a tile is one of the last tiles of the piece, we use the first tiles of the piece. 3. Calculation of the difficulty The difficulty of a piece (up to a certain tile, for example up to the first star, or to the third star, or to the third crown. etc...) is calculated as follows: DIFFICULTY = (A/20) + B where: A is the sum of all the points indicated in section 1 above multiplied by the speed of the corresponding tile (in tiles/second) ^ 4, until the last tile considered in the sequence under evaluation B is the maximum among the following values: each value indicated in section 2 above multiplied by the speed of the corresponding tile (in tiles/second) ^ 4, until the last tile considered in the sequence under evaluation 4. Difficulty classification Depending on the difficulty value, the following classification is suggested: From 0 to 4000: Baby Level From 4000 to 8000: Extremely Simple From 8000 to 12000: Very Simple From 12000 to 18000: Simple From 18000 to 25000: Moderately Simple From 25000 to 35000: Moderate From 35000 to 50000: Moderately Difficult From 50000 to 75000: Considerably Difficult From 75000 to 100000: Difficult From 100000 to 150000: Very Difficult From 150000 to 200000: Extremely Difficult From 200000 to 300000: Insanely Difficult From 300000 to 500000: Alien Level Above 500000: Quite Impossible 5. An example of difficulties The following list indicates the most difficult and the easiest levels according to the above calculation, together with their points. Of course there are some (very few) pieces for which I don't agree with the classification. TOP 30 MOST DIFFICULT PIECES (to 3 stars): Star Clock (Adapted by Pi): 279891 Christmas Rhapsody (Adapted by Pi): 264004 Dance Of The Golden Snake 2 (Er Nie): 187034 Crazy pharaoh (Luo Ni): 165588 Champagne Bridge (Adapted by Pi): 162138 Etude Op.740 No.19 (Czerny): 161775 Etude de Virtuosite in E (Moszkowski): 158773 Rondo A Capriccio Op. 129 (Beethoven): 149640 Flight of the Bumblebee (Rimsky-Korsakov): 139205 William Tell Overture (Gioachino Rossini): 137462 Christmas Zoo (Plants): 137349 Hungarian Dance No. 5 (Johannes Brahms): 135962 Fantasie - Impromptu (Chopin): 129176 Sonata Pathetique Mvt. 3 (Beethoven): 124398 Moonlight Sonata Mvt. 3 (Beethoven): 122807 Penguins' game (Unknown): 122294 Etude Op.849 No.21 (Czerny): 115502 First Noel (English Folk Music): 112779 Madding Wind (Clack Chen): 110128 Etude Op.299 No.11 (Czerny): 108821 Etude Op.740 No.42 (Czerny): 107656 Etude Op.10 No.5 (Chopin): 105361 Etude Op.849 No.6 (Czerny): 102942 Carmen Overture (Bizet): 98810 Csikos Post (Hermann Necke), original revision: 98393 The Song of the Robin (George W. Warren): 97663 Dance Of The Hours (Amilcare Ponchielli): 96995 Hungarian Rhapsody No. 6 (Franz Lizst): 96033 Solfeggietto (C. P. E. Bach): 95647 Polonaise Op.53 (Chopin): 95050 TOP 30 EASIEST PIECES (to 3 stars): Romance De Amor (Narciso Yepes): 710 Forest Of Blocks (Congfei Wei): 1003 Serenade (Schubert): 1028 Berenice (Congfei Wei): 1658 Birthday Song (Adapted by Pi): 1949 Little Star (English Folk Song), 3rd revision: 2467 Jingle Bells (James Lord Pierpont), 2nd revision: 2676 Moonlight Sonata Mvt.2 (Beethoven): 2968 Little Star (English Folk Song), 2nd revision: 2971 Moonlight Sonata Mvt.1 (Beethoven): 2978 Nocturne Op.55 No.1 (Chopin): 2986 Little Star (English Folk Song), 1st revision: 3005 Little Star (English Folk Song), original revision: 3139 Aurora (Confei Wei): 3425 Warblings At Eve (Brinley Richards): 3433 Londonderry Air (Ireland Folk Music): 3565 A Tear (M.P. Mussorgsky): 3800 Prisoners Dream (Kyrene): 3887 Happy New Year (English Folk Music), 1st revision: 3888 Ode An Die Freude (Beethoven): 4069 Solitary Awakening (Kyrene): 4079 Arirang (Korean Folk Music): 4177 Douze Etudes de Salon Op.5 No.11 (Adolf von Henselt): 4256 Two Tigers (French Folk Song), 2nd revision: 4271 Red Berries in Blossom (Dunayevsky): 4367 Love's Dream After the Ball (Alphons Czibulka): 4401 Torna a Surriento (Ernesto De Curtis): 4429 The Steadfast Palm Grass (You Xue-zhi): 4498 Happy New Year (English Folk Music), original revision: 4593 Traumerei Op.15 No.7 (Robert Schumann): 4702 TOP 30 MOST DIFFICULT PIECES (to 3 crowns): Christmas Rhapsody (Adapted by Pi): 1753737 Star Clock (Adapted by Pi): 961121 Etude de Virtuosite in E (Moszkowski): 707522 Dance Of The Golden Snake 2 (Er Nie): 667867 Etude Op.740 No.19 (Czerny): 648830 Crazy pharaoh (Luo Ni): 640727 Flight of the Bumblebee (Rimsky-Korsakov): 604388 Christmas Zoo (Plants): 565003 William Tell Overture (Gioachino Rossini): 564694 Fantasie - Impromptu (Chopin): 555225 Rondo A Capriccio Op. 129 (Beethoven): 554562 Champagne Bridge (Adapted by Pi): 554409 Sonata Pathetique Mvt. 3 (Beethoven): 539349 Moonlight Sonata Mvt. 3 (Beethoven): 519621 Etude Op.299 No.11 (Czerny): 480582 Etude Op.849 No.21 (Czerny): 462527 Polonaise Op.53 (Chopin): 452344 Etude Op.740 No.42 (Czerny): 446364 Hungarian Rhapsody No. 6 (Franz Lizst): 442847 First Noel (English Folk Music): 440287 Penguins' game (Unknown): 436646 Paganini Caprice No. 9 (Robert Schumann), original revision: 428515 Etude Op.10 No.5 (Chopin): 427213 Hungarian Dance No. 5 (Johannes Brahms): 425819 Etude Op.849 No.6 (Czerny): 422750 Solfeggietto (C. P. E. Bach): 416795 Csardas (Vittorio Monti): 416189 Appassionata Mvt. 3 (Beethoven): 408560 Sonata in C Major K279 (Mozart): 408430 Madding Wind (Clack Chen): 380557 TOP 30 EASIEST PIECES (to 3 crowns): Romance De Amor (Narciso Yepes): 4847 Serenade (Schubert): 9226 Forest Of Blocks (Congfei Wei): 9741 Birthday Song (Adapted by Pi): 11209 Berenice (Congfei Wei): 13959 Jingle Bells (James Lord Pierpont), 2nd revision: 16497 Moonlight Sonata Mvt.2 (Beethoven): 18555 Little Star (English Folk Song), 3rd revision: 19642 Happy New Year (English Folk Music), 1st revision: 19789 Two Tigers (French Folk Song), 2nd revision: 20838 Nocturne Op.55 No.1 (Chopin): 21411 Little Star (English Folk Song), 2nd revision: 22095 Little Star (English Folk Song), 1st revision: 22456 Warblings At Eve (Brinley Richards): 22992 Aurora (Confei Wei): 23696 Little Star (English Folk Song), original revision: 23738 Moonlight Sonata Mvt.1 (Beethoven): 23767 Happy New Year (English Folk Music), original revision: 24923 Happy Birthday to You (American Folk Music), 1st revision: 24924 Londonderry Air (Ireland Folk Music): 26295 Prisoners Dream (Kyrene): 26527 Solitary Awakening (Kyrene): 26908 The Steadfast Palm Grass (You Xue-zhi): 27457 Canon (Johann Pachelbel), 1st revision: 28393 A Tear (M.P. Mussorgsky): 28627 Jasmine (Chinese Folk Song), 1st revision: 28724 Douze Etudes de Salon Op.5 No.11 (Adolf von Henselt): 29302 Nocturne Op. 9 No. 2 (Chopin), 1st revision: 29507 Torna a Surriento (Ernesto De Curtis): 29979 Red Berries in Blossom (Dunayevsky): 30192 Category:Blog posts